-----------------------------------------------------------------------------
--
-- Module      :  Data.Units
-- Copyright   :
-- License     :  AllRightsReserved
--
-- Maintainer  :  eduard.sergeev@gmail.com
-- Stability   :  Highly Experimental
-- Portability :
--
-- | Units of measurements - main module (normalt you need to import only this module)
--
-----------------------------------------------------------------------------
{-# LANGUAGE NoImplicitPrelude #-}


module Data.Units (

  -- * Base classes for type-level arithmetics for units
  ToNumber,
  ToList,
  FromList,
  Multiply,
  Divide,
  Power,
  (:/:),
  (:*:),
  U,
  
  module Data.TypeLevel.Peano,

  -- * 'Unified' "Num" and "Fractional" - like classes
  QNum(..),
  QFractional(..),
  QReal(..),
  QIntegral(..),
  QFloating(..),

  (^),

  (:::),
  quantitify,
  scalar,
  (<:),
  (>|),

  fromInteger,
  fromRational,

--  even, odd,
--  gcd,

  -- * TemplateHaskell quasiquotation generator for units
  unit,

) where

import Data.TypeLevel.Peano (_1,_2,_3,_4,_5,_6,_7,_8,_9)

import Data.Units.Types
import Data.Units.Class
import Data.Units.Instances
import Data.Units.Generator

